package com.water_work_form.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.water_work_form.entity.RecordCapacityAnalysis;
import com.water_work_form.entity.RecordPotentialPh;
import com.water_work_form.result.Result;
import com.water_work_form.result.ResultCodeEnum;
import com.water_work_form.result.ResultUtil;
import com.water_work_form.service.RecordCapacityAnalysisService;
import com.water_work_form.util.RandomIdUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.util.Map;

/**
 * <p>
 * 记录——容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 前端控制器
 * </p>
 *
 * @author xuke
 * @since 2023-09-14
 */
@RestController
@RequestMapping("/record-capacity-analysis")
public class RecordCapacityAnalysisController {

    @Autowired
    RecordCapacityAnalysisService recordCapacityAnalysisService;

    /**
     * 容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 项目新增
     * @param recordCapacityAnalysis 新项目
     * @return 返回result，code 0成功
     */
    @ApiOperation("新增")
    @PostMapping("/add")
    public Result addRecordCapacityAnalysis(@RequestBody RecordCapacityAnalysis recordCapacityAnalysis){
        recordCapacityAnalysis.setId(RandomIdUtil.createRandomId());
        recordCapacityAnalysisService.save(recordCapacityAnalysis);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, recordCapacityAnalysis);
    }

    /**
     * 容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 项目查询
     * @param checkStartDate 检测日期（check_date）范围查询开始日期
     * @param checkEndDate 检测日期（check_date）范围查询结束日期
     * @param checkSite 检测地点（check_site）
     * @param status 状态（status）
     * @param current 分页 当前页
     * @param size 分页 每页数据量
     * @return 返回相应数据
     */
    @ApiOperation("查看(分页)")
    @GetMapping("/pageList")
    public Result listRecordCapacityAnalysis(@RequestParam("checkStartDate") String checkStartDate, @RequestParam("checkEndDate") String checkEndDate, @RequestParam("checkSite") String checkSite,
                                             @RequestParam("status") String status, @RequestParam("current") Integer current, @RequestParam("size") Integer size){
        IPage<RecordCapacityAnalysis> page = recordCapacityAnalysisService.selectRecordCapacityAnalysis(checkStartDate, checkEndDate, checkSite, status, current, size);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, page);
    }

    /**
     * 容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 项目删除
     * @param id 需删除的项目id
     * @return 返回result，code 0成功
     */
    @ApiOperation("删除")
    @DeleteMapping("/delete")
    public Result deleteRecordCapacityAnalysis(@RequestParam("id") Long id){
        recordCapacityAnalysisService.removeById(id);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }

    /**
     * 容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 项目更新
     * @param recordCapacityAnalysis 更新的项目
     * @return 返回result，code 0成功
     */
    @ApiOperation("更新")
    @PostMapping("/update")
    public Result updateRecordCapacityAnalysis(@RequestBody RecordCapacityAnalysis recordCapacityAnalysis){
        recordCapacityAnalysisService.updateById(recordCapacityAnalysis);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }

    /**
     * 容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 基础表数据查询
     * @param formName form表name
     * @param type device表type
     * @param name1 formula表name，drug表name，ph表name，restriction表name
     * @param name2 formula表name，drug表name，ph表name，restriction表name
     * @param name3 formula表name，drug表name，ph表name，restriction表name
     * @param name4 formula表name，drug表name，ph表name，restriction表name
     * @param volume1 volume表name
     * @param volume2 volume表name
     * @param volume3 volume表name
     * @param volume4 volume表name
     * @return 返回相应数据
     */
    @ApiOperation("基础表数据查询")
    @GetMapping("/basicList")
    public Result listBasicCapacityAnalysis( @RequestParam("formName") String formName, @RequestParam("type") String type, @RequestParam("name1") String name1,
                                               @RequestParam("name2") String name2, @RequestParam("name3") String name3, @RequestParam("name4") String name4, @RequestParam("volume1") String volume1,
                                               @RequestParam("volume2") String volume2, @RequestParam("volume3") String volume3, @RequestParam("volume4") String volume4){
        Map<String,Object> map = recordCapacityAnalysisService.selectBasicCapacityAnalysis(formName, type, name1, name2, name3, name4, volume1, volume2, volume3, volume4);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, map);
    }

    /**
     * 记录——容量分析（总硬度、总碱度、氯化物、高猛酸盐指数）原始记录 数据表导出
     * @param recordCapacityAnalysis 需要导出的数据列表
     * @return 返回相应数据
     * @throws IOException 异常
     */
    @ApiOperation("列表导出")
    @PostMapping(value = "/download-word")
    public Result downloadWordRecordCapacityAnalysis(@RequestBody RecordCapacityAnalysis recordCapacityAnalysis) throws IOException  {
        recordCapacityAnalysisService.downloadRecordCapacityAnalysis(recordCapacityAnalysis);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }


}

